2014-11-22 78 views
1

我通過WebView通過調用函數發送消息。發送短信MyJavaScriptInterface不工作 - Android Studio

Toast.makeText功能正常工作(顯示警告消息),但在相同的功能,如果我發送短信代碼,那麼它不起作用。

這裏是我的代碼

public class MyJavaScriptInterface { 

    Context mContext; 

    MyJavaScriptInterface(Context c) { 
     mContext = c; 
    } 

    @JavascriptInterface 
    public void showToast(String toast) { 
     Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); 
    } 
    public void sendsmss(String phoneNumber, String message) { 

     SmsManager smsManager = SmsManager.getDefault(); 
     smsManager.sendTextMessage(phoneNumber, null, message, null, null); 


    } 





} 

WebView代碼來調用函數

onClick="AndroidFunction.sendsmss('1234567890','hello world ');" 

進口所有所需的類。

我發送成功的短信通過將smsmanager代碼的onCreate功能

+0

實際的問題是,手機短信發送,如果我把代碼的onCreate函數內部所以與SmsManager沒有問題。 但如果我想調用MyJavaScriptInterface類中的函數,那麼它不起作用。函數調用方法有什麼問題嗎? – user3136076 2014-11-22 07:47:35

回答

0

@JavascriptInterface註釋發送方法。如果沒有這個註解你的方法不能從JavaScript調用

public class MyJavaScriptInterface { 

Context mContext; 

MyJavaScriptInterface(Context c) { 
    mContext = c; 
} 

@JavascriptInterface 
public void showToast(String toast) { 
    Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); 
} 
@JavascriptInterface 
public void sendsmss(String phoneNumber, String message) { 

    SmsManager smsManager = SmsManager.getDefault(); 
    smsManager.sendTextMessage(phoneNumber, null, message, null, null); 

} 
} 
+0

謝謝。是工作。 – user3136076 2014-11-22 18:04:53

+0

另一個問題反向,我添加了下面的代碼來調用JavaScript函數後短信方法,但它不會調用。 是否有任何需要添加任何註釋? String msgToSend =「你好,我來自android應用程序」; myWebView.loadUrl( 「JavaScript的:callFromActivity(\」 「+ msgToSend +」 \ 「)」); javascript函數「callFromActivity」在網頁中定義。 – user3136076 2014-11-23 19:35:48

+0

可能是你的msgToSend包含'\ n','\ r'等字符?無論如何,調試「java到javascript」的交互是很困難的。如果您的android API級別> = 19,請使用if(Build.VERSION.SDK_INT> = Build.VERSION_CODES.KITKAT){WebView.setWebContentsDebuggingEnabled(true);}開啓webview調試,然後轉到chrome:// inspect in Google Chrome瀏覽器在桌面上。有關更多信息,請訪問https://developer.chrome.com/devtools/docs/remote-debugging – 2014-11-24 13:57:39

0

嘗試通過意圖的短信裏,

Uri uri = Uri.parse("smsto:0800000123"); 
Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
it.putExtra("sms_body", "The SMS text"); 
startActivity(it); 

編輯,清單文件

添加權限,

<uses-permission android:name="android.permission.SEND_SMS"></uses-permission> 
+0

嘗試過但不能正常工作。 – user3136076 2014-11-22 07:40:12

+0

已添加權限。 – user3136076 2014-11-22 07:54:27

+0

有什麼錯誤了嗎? – stacktry 2014-11-22 07:56:38