だから私はサーバー(ホスティングサイト)にデータを渡す必要があるWebViewにあるこのAndroidアプリケーションを持っています、残念ながら私はそれを行うことができないので、この問題を解決するためにあなたの助けが必要です。
私はこのサイトからほとんどのコードを入手したので、見覚えがあるかもしれません。
したがって、データをサーバーに送信する関数を開始するこのHTMLファイルがあります。
watch_video.html
var v_id = getUrlVars()["v_id"];
$.ajax({
url: "http://mysite.com/fbtest.php?json_callback=?",
dataType: "jsonp text",
//GET method is used
type: "POST",
//pass the data
data: 'v_id=' + v_id,
//Do not cache the page
cache: false,
//Cross Domain
crossDomain: true,
//success
success: function (html) {
alert(html);
}
したがって、クロスドメインを使用するサーバー(ホスティングサイト)のPHPファイルのコードは次のとおりです。
<?php
include("includes/db.php");
header('content-type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
$v_id = ($_POST['v_id']) ?$_POST['v_id'] : $_GET['v_id'];
$dwatch=date("Y-m-d");
$twatch=date("H:i:s");
$query="insert into watched_videos (fb_id,vid,date_watched,time_watched) values('12345','".$v_id."','".$dwatch."','".$twatch."')";
$row = mysql_query($query);
?>
XAMPPを使用してこれをローカルでテストしました。データベースにデータを挿入すると機能します。
Androidにインストールして同じ機能を実行したところ、機能しませんでした。
これが私のMainActivity.javaコードです:
package namename.name;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;
public class MainActivity extends Activity {
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView mWebView = null;
mWebView = (WebView) findViewById(R.id.webtest);
mWebView.getSettings().setPluginState(PluginState.ON);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/www/indexbackup.html");
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
WebView mWebView = null;
mWebView = (WebView) findViewById(R.id.webtest);
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch(keyCode)
{
case KeyEvent.KEYCODE_BACK:
if(mWebView.canGoBack() == true){
mWebView.goBack();
}else{
finish();
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
したがって、JSONPを使用してWebViewで関数を開始する前に言ったことに戻ると、機能しませんでした。
私は自分のAndroidファイルかそこらに何かを入れることができるかどうか疑問に思いました。
誰かが私を助けてくれたら嬉しいです。
前もって感謝します。